package w.z.x.framework.repository.annotations;

import w.z.x.framework.repository.enums.Fill;
import w.z.x.framework.repository.handlers.NoneFilHandler;
import w.z.x.framework.repository.interfaces.FiledFillHandler;

import java.lang.annotation.*;

/**
 * 字段
 *
 * @author 魏祖潇
 */
@Documented
@Inherited
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.FIELD})
public @interface MyField {

    /**
     * 字段名
     *
     * @return 默认 当前字段名
     */
    String value() default "";

    /**
     * 字段类型
     *
     * @return 默认当前字段类型
     */
    String type() default "";

    /**
     * 字段默认值
     *
     * @return 默认 无
     */
    String defaultValue() default "";

    /**
     * 字段描述
     *
     * @return 默认 无
     */
    String comment() default "";

    /**
     * 填充规则
     *
     * @return 默认 无
     */
    Fill fill() default Fill.NONE;

    /**
     * 填充处理
     *
     * @return 默认 无
     */
    Class<? extends FiledFillHandler> using() default NoneFilHandler.class;

    /**
     * 是否转 json字符串
     * @return 默认 否
     */
    boolean toJsonString() default false;

}
